package com.lcm.fas.utils;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import com.lcm.fas.common.Constants;
import com.lcm.fas.model.FileInfo;
/**
 * 文件工具类2：文件的按类型读取
 * @author lcm专用版
 *
 */
public class FileUtils2 {
	public static List<List<FileInfo>> files;
	public static List<FileInfo> audios;//音频文件
	public static List<FileInfo> videos;//视频文件
	public static List<FileInfo> images;//图片文件
	public static List<FileInfo> docs;//文档文件
	public static List<FileInfo> orthers;//其他类型文件
	public FileUtils2() {
		super();
		// TODO Auto-generated constructor stub
		audios = new ArrayList<FileInfo>();
		videos = new ArrayList<FileInfo>();
		images = new ArrayList<FileInfo>();;
		docs = new ArrayList<FileInfo>();
		orthers = new ArrayList<FileInfo>();
		files = new ArrayList<List<FileInfo>>();
		files.add(audios);
		files.add(videos);
		files.add(images);
		files.add(docs);
		files.add(orthers);
	}
	
	/**
	 * 获取根目录下的所有指定文件类型的文件
	 * @param type
	 * @return
	 */
	public static void getAllFileByType(File file){
		if(file != null && file.exists()){
			File[] f = file.listFiles();
			if(f != null){
				for(int i=0;i<f.length;i++){
					getAllFileByType(f[i]);
				}
			}else{
				String fileName = file.getName();
				if(fileName.contains(".")) {//只扫描合法文件（含后缀名）
					String fileType = fileName.substring(fileName.lastIndexOf("."),fileName.length()).toLowerCase();
					if(file.isFile()) {
						//获取文件属性
						FileInfo f2 = new FileInfo(file.getName(), 
								FileUtils.getUpdateTime(file.lastModified()), 
								fileType.substring(1,fileType.length()).toUpperCase()+"文件", 
								String.valueOf(FileUtils.getFileSize(file))+" KB", file.getPath());
						if(Constants.MUSIC_TYPE.contains(fileType)) {//音频文件
							files.get(0).add(f2);
						}else if(Constants.VIDEO_TYPE.contains(fileType)) {//视频文件
							files.get(1).add(f2);
						}else if(Constants.IMG_TYPE.contains(fileType)) {//图片文件
							files.get(2).add(f2);
						}else if(Constants.DOC_TYPE.contains(fileType)) {//文档文件
							files.get(3).add(f2);
						}else{//其他类型文件
							if(f2.getFileName().contains(".lnk")) {
								f2.setType("快捷方式");
							}
							files.get(4).add(f2);
						}
					}
				}
			}
		}
	}
	
}
